1. The Field of the Invention
The present invention relates generally to high speed telecommunications systems. More particularly, embodiments of the present invention relate to two-wire interface protocol based communication.
2. Background and Relevant Art
Electronic and computing technology has transformed the way that we work and play. Many electronic or computing systems rely on a variety of components that cooperatively interact to perform complex functions. Such cooperative interaction often relies on the ability of the various components to communicate effectively.
There are many ways that electronic components may communicate. However, oftentimes, two wires are used that carry communication in conformity with a two-wire interface protocol. Although communication using a two-wire interface can be slower than communication over other interfaces, the use of two wires is preferred in some implementations because the use of fewer wires often requires less chip or board space between components. In addition, the use of two wires often introduces less electromagnetic interference in the rest of the chip and/or board than many parallel interfaces.
In some conventional two-wire interface protocols, one wire is used to carry a clock signal, and one wire is used to carry a data signal. The clock signal is generally generated by a master component and is used by the master component as well as by one or more slave components. Either the master component or a slave component may drive data onto the data wire following the timing of the shared clock signal. Each communicating component understands a common two-wire protocol used to communicate, and thus may each function appropriately given the data. The data line of the two wires typically includes not only data, but also a header field that identifies the operations to be performed (i.e., the operation code), the device identifier (in cases in which there may be multiple slave components to communicate with), and an address from which the data should be read or to which the data should be written.
One example of a prolific two-wire interface protocol is the I2C interface. The I2C interface may be used to transfer large amounts (e.g., kilobytes or megabytes) of data using a single corresponding header field. In other words, the header field is provided once, and the corresponding operation is understood to correspond to all of the data to follow. Since the header field is provided only once for large amounts of data, the I2C interface protocol is very efficient when communicating large amounts of data to and from memory.
Another kind of two-wire interface protocol includes a header field for each byte or word of data being transferred. Such a two-wire interface protocols will be referred to herein as a “guaranteed header two-wire interface protocol” since each byte or word or other small fixed amount of data is guaranteed to have its own header field identifying the operation to be performed. Since each byte or word of data has its own header field, there is significantly more bandwidth used per unit of data transferred. Most often, in fact, there are more bits transferred that represent header information than there are that represent actual data to be read or written when using such guaranteed header interface protocols. Accordingly, guaranteed header two-wire interface protocols are not typically used for reading or writing large amounts of contiguous data. Instead, guaranteed header two wire interfaces are most often used for intermittently transferring small amounts of data as when, for example, occasionally setting configuration register values. A frame or communication in the context of a two-wire interface protocol is the header field and all of its corresponding data.
Various two-wire interface protocols have their respective benefits and disadvantages. Some two-wire interface protocols are more suitable than others for any given implementation. Accordingly, a two-wire interface module may use a different wire pair and different two-wire interface protocols to communicate with various other components. It does, however, consume processing power and/or require complex hardware to configure a two-wire interface module to generate a frame that conforms to a two-wire interface module, especially if the module must communicate using two different two-wire interface modules.
What would be advantageous would be a mechanism that permits a two-wire interface module that communicates using multiple two-wire interface protocols to reduce the complexity associated with communication, to thereby reduce the processing and/or hardware requirements associated with the communications.